package drone.basis.base ;

import java.math.BigDecimal ;
import java.util.List ;

import io.swagger.annotations.ApiModel ;
import io.swagger.annotations.ApiModelProperty ;
import drone.basis.util.PageUtil ;

@ApiModel ( "基础返回数据" )
public class BaseResult < E > extends BaseBean
{

	private static final long serialVersionUID = 1L ;

	@ApiModelProperty ( value = "信息实体" , dataType = "Map" )
	protected E resultBean ;

	@ApiModelProperty ( value = "查询结果列表" , dataType = "List" )
	protected List < E > resultList ;

	@ApiModelProperty ( value = "分页对象" , dataType = "PageUtil" )
	protected PageUtil pageUtil ;

	@ApiModelProperty ( value = "结果" , dataType = "Boolean" )
	protected Boolean resultState ;

	@ApiModelProperty ( value = "条数" , dataType = "Long" )
	protected Long resultCount ;

	@ApiModelProperty ( value = "汇总" , dataType = "BigDecimal" )
	protected BigDecimal resultTotal ;

	@ApiModelProperty ( value = "总价" , dataType = "BigDecimal" )
	protected BigDecimal resultCapacity ;

	@ApiModelProperty ( value = "聚合项1" , dataType = "BigDecimal" )
	protected BigDecimal resultAgg1 ;

	@ApiModelProperty ( value = "聚合项2" , dataType = "BigDecimal" )
	protected BigDecimal resultAgg2 ;

	@ApiModelProperty ( value = "聚合项3" , dataType = "BigDecimal" )
	protected BigDecimal resultAgg3 ;

	@ApiModelProperty ( value = "聚合项4" , dataType = "BigDecimal" )
	protected BigDecimal resultAgg4 ;

	@ApiModelProperty ( value = "聚合项5" , dataType = "BigDecimal" )
	protected BigDecimal resultAgg5 ;

	@ApiModelProperty ( value = "聚合项6" , dataType = "BigDecimal" )
	protected BigDecimal resultAgg6 ;

	@ApiModelProperty ( value = "聚合项7" , dataType = "BigDecimal" )
	protected BigDecimal resultAgg7 ;

	@ApiModelProperty ( value = "聚合项8" , dataType = "BigDecimal" )
	protected BigDecimal resultAgg8 ;

	@ApiModelProperty ( value = "聚合项9" , dataType = "BigDecimal" )
	protected BigDecimal resultAgg9 ;

	@ApiModelProperty ( value = "编码" )
	protected String codeInfo ;

	@ApiModelProperty ( value = "信息" )
	protected String messageInfo ;

	@ApiModelProperty ( value = "版本号" )
	protected String verisonNo ;

	@ApiModelProperty ( value = "路径" )
	protected String pathInfo ;

	@ApiModelProperty ( value = "负责人" )
	protected String authorName ;

	@ApiModelProperty ( value = "业务流水号" )
	protected String serialNo ;

	@ApiModelProperty ( value = "影响数量" )
	protected String effectCount ;

	@ApiModelProperty ( value = "受理方" )
	protected String issueName ;

	@ApiModelProperty ( value = "令牌" )
	protected String tokenInfo ;

	@ApiModelProperty ( value = "数字签名" )
	protected String signatureInfo ;

	public BaseResult ( )
	{

	}

	public BaseResult (
			String codeInfo ,
			String messageInfo
	)
	{
		this.codeInfo = codeInfo ;
		this.messageInfo = messageInfo ;
	}

	public BaseResult (
			Boolean resultState
	)
	{
		this.resultState = resultState ;
	}

	public BaseResult (
			Long resultCount
	)
	{
		this.resultCount = resultCount ;
	}

	public BaseResult (
			BigDecimal resultTotal
	)
	{
		this.resultTotal = resultTotal ;
	}

	public BaseResult (
			E resultBean
	)
	{
		this.resultBean = resultBean ;
	}

	public BaseResult (
			List < E > resultList ,
			PageUtil pageUtil
	)
	{
		this.resultList = resultList ;
		this.pageUtil = pageUtil ;
	}

	public BaseResult (
			Builder < E > builder
	)
	{
		this.resultBean = builder.resultBean ;
		this.resultList = builder.resultList ;
		this.pageUtil = builder.pageUtil ;
		this.resultState = builder.resultState ;
		this.resultCount = builder.resultCount ;
		this.resultTotal = builder.resultTotal ;
		this.resultCapacity = builder.resultCapacity ;
		this.resultAgg1 = builder.resultAgg1 ;
		this.resultAgg2 = builder.resultAgg2 ;
		this.resultAgg3 = builder.resultAgg3 ;
		this.resultAgg4 = builder.resultAgg4 ;
		this.resultAgg5 = builder.resultAgg5 ;
		this.resultAgg6 = builder.resultAgg6 ;
		this.resultAgg7 = builder.resultAgg7 ;
		this.resultAgg8 = builder.resultAgg8 ;
		this.resultAgg9 = builder.resultAgg9 ;
		this.verisonNo = builder.verisonNo ;
		this.codeInfo = builder.codeInfo ;
		this.messageInfo = builder.messageInfo ;
		this.pathInfo = builder.pathInfo ;
		this.authorName = builder.authorName ;
		this.serialNo = builder.serialNo ;
		this.effectCount = builder.effectCount ;
		this.issueName = builder.issueName ;
		this.tokenInfo = builder.tokenInfo ;
		this.signatureInfo = builder.signatureInfo ;

	}

	public E getResultBean ( )
	{
		return resultBean ;
	}

	public void setResultBean (
			E resultBean
	)
	{
		this.resultBean = resultBean ;
	}

	public List < E > getResultList ( )
	{
		return resultList ;
	}

	public void setResultList (
			List < E > resultList
	)
	{
		this.resultList = resultList ;
	}

	public PageUtil getPageUtil ( )
	{
		return pageUtil ;
	}

	public void setPageUtil (
			PageUtil pageUtil
	)
	{
		this.pageUtil = pageUtil ;
	}

	public Boolean getResultState ( )
	{
		return resultState ;
	}

	public void setResultState (
			Boolean resultState
	)
	{
		this.resultState = resultState ;
	}

	public Long getResultCount ( )
	{
		return resultCount ;
	}

	public void setResultCount (
			Long resultCount
	)
	{
		this.resultCount = resultCount ;
	}

	public BigDecimal getResultTotal ( )
	{
		return resultTotal ;
	}

	public void setResultTotal (
			BigDecimal resultTotal
	)
	{
		this.resultTotal = resultTotal ;
	}

	public BigDecimal getResultCapacity ( )
	{
		return resultCapacity ;
	}

	public void setResultCapacity (
			BigDecimal resultCapacity
	)
	{
		this.resultCapacity = resultCapacity ;
	}

	public BigDecimal getResultAgg1 ( )
	{
		return resultAgg1 ;
	}

	public void setResultAgg1 (
			BigDecimal resultAgg1
	)
	{
		this.resultAgg1 = resultAgg1 ;
	}

	public BigDecimal getResultAgg2 ( )
	{
		return resultAgg2 ;
	}

	public void setResultAgg2 (
			BigDecimal resultAgg2
	)
	{
		this.resultAgg2 = resultAgg2 ;
	}

	public BigDecimal getResultAgg3 ( )
	{
		return resultAgg3 ;
	}

	public void setResultAgg3 (
			BigDecimal resultAgg3
	)
	{
		this.resultAgg3 = resultAgg3 ;
	}

	public BigDecimal getResultAgg4 ( )
	{
		return resultAgg4 ;
	}

	public void setResultAgg4 (
			BigDecimal resultAgg4
	)
	{
		this.resultAgg4 = resultAgg4 ;
	}

	public BigDecimal getResultAgg5 ( )
	{
		return resultAgg5 ;
	}

	public void setResultAgg5 (
			BigDecimal resultAgg5
	)
	{
		this.resultAgg5 = resultAgg5 ;
	}

	public BigDecimal getResultAgg6 ( )
	{
		return resultAgg6 ;
	}

	public void setResultAgg6 (
			BigDecimal resultAgg6
	)
	{
		this.resultAgg6 = resultAgg6 ;
	}

	public BigDecimal getResultAgg7 ( )
	{
		return resultAgg7 ;
	}

	public void setResultAgg7 (
			BigDecimal resultAgg7
	)
	{
		this.resultAgg7 = resultAgg7 ;
	}

	public BigDecimal getResultAgg8 ( )
	{
		return resultAgg8 ;
	}

	public void setResultAgg8 (
			BigDecimal resultAgg8
	)
	{
		this.resultAgg8 = resultAgg8 ;
	}

	public BigDecimal getResultAgg9 ( )
	{
		return resultAgg9 ;
	}

	public void setResultAgg9 (
			BigDecimal resultAgg9
	)
	{
		this.resultAgg9 = resultAgg9 ;
	}

	public String getCodeInfo ( )
	{
		return codeInfo ;
	}

	public void setCodeInfo (
			String codeInfo
	)
	{
		this.codeInfo = codeInfo ;
	}

	public String getMessageInfo ( )
	{
		return messageInfo ;
	}

	public void setMessageInfo (
			String messageInfo
	)
	{
		this.messageInfo = messageInfo ;
	}

	public String getVerisonNo ( )
	{
		return verisonNo ;
	}

	public void setVerisonNo (
			String verisonNo
	)
	{
		this.verisonNo = verisonNo ;
	}

	public String getPathInfo ( )
	{
		return pathInfo ;
	}

	public void setPathInfo (
			String pathInfo
	)
	{
		this.pathInfo = pathInfo ;
	}

	public String getAuthorName ( )
	{
		return authorName ;
	}

	public void setAuthorName (
			String authorName
	)
	{
		this.authorName = authorName ;
	}

	public String getSerialNo ( )
	{
		return serialNo ;
	}

	public void setSerialNo (
			String serialNo
	)
	{
		this.serialNo = serialNo ;
	}

	public String getEffectCount ( )
	{
		return effectCount ;
	}

	public void setEffectCount (
			String effectCount
	)
	{
		this.effectCount = effectCount ;
	}

	public String getIssueName ( )
	{
		return issueName ;
	}

	public void setIssueName (
			String issueName
	)
	{
		this.issueName = issueName ;
	}

	public String getTokenInfo ( )
	{
		return tokenInfo ;
	}

	public void setTokenInfo (
			String tokenInfo
	)
	{
		this.tokenInfo = tokenInfo ;
	}

	public String getSignatureInfo ( )
	{
		return signatureInfo ;
	}

	public void setSignatureInfo (
			String signatureInfo
	)
	{
		this.signatureInfo = signatureInfo ;
	}

	public static class Builder < E >
	{

		private E resultBean ;

		private List < E > resultList ;

		private PageUtil pageUtil ;

		private Boolean resultState ;

		private Long resultCount ;

		private BigDecimal resultTotal ;

		private BigDecimal resultCapacity ;

		private BigDecimal resultAgg1 ;

		private BigDecimal resultAgg2 ;

		private BigDecimal resultAgg3 ;

		private BigDecimal resultAgg4 ;

		private BigDecimal resultAgg5 ;

		private BigDecimal resultAgg6 ;

		private BigDecimal resultAgg7 ;

		private BigDecimal resultAgg8 ;

		private BigDecimal resultAgg9 ;

		private String verisonNo ;

		private String codeInfo ;

		private String messageInfo ;

		private String pathInfo ;

		private String authorName ;

		private String serialNo ;

		private String effectCount ;

		private String issueName ;

		private String tokenInfo ;

		private String signatureInfo ;

		public Builder < E > resultBean (
				E resultBean
		)
		{
			this.resultBean = resultBean ;
			return this ;
		}

		public Builder < E > resultList (
				List < E > resultList
		)
		{
			this.resultList = resultList ;
			return this ;
		}

		public Builder < E > pageUtil (
				PageUtil pageUtil
		)
		{
			this.pageUtil = pageUtil ;
			return this ;
		}

		public Builder < E > resultState (
				Boolean resultState
		)
		{
			this.resultState = resultState ;
			return this ;
		}

		public Builder < E > resultCount (
				Long resultCount
		)
		{
			this.resultCount = resultCount ;
			return this ;
		}

		public Builder < E > resultTotal (
				BigDecimal resultTotal
		)
		{
			this.resultTotal = resultTotal ;
			return this ;
		}

		public Builder < E > resultCapacity (
				BigDecimal resultCapacity
		)
		{
			this.resultCapacity = resultCapacity ;
			return this ;
		}

		public Builder < E > resultAgg1 (
				BigDecimal resultAgg1
		)
		{
			this.resultAgg1 = resultAgg1 ;
			return this ;
		}

		public Builder < E > resultAgg2 (
				BigDecimal resultAgg2
		)
		{
			this.resultAgg2 = resultAgg2 ;
			return this ;
		}

		public Builder < E > resultAgg3 (
				BigDecimal resultAgg3
		)
		{
			this.resultAgg3 = resultAgg3 ;
			return this ;
		}

		public Builder < E > resultAgg4 (
				BigDecimal resultAgg4
		)
		{
			this.resultAgg4 = resultAgg4 ;
			return this ;
		}

		public Builder < E > resultAgg5 (
				BigDecimal resultAgg5
		)
		{
			this.resultAgg5 = resultAgg5 ;
			return this ;
		}

		public Builder < E > resultAgg6 (
				BigDecimal resultAgg6
		)
		{
			this.resultAgg6 = resultAgg6 ;
			return this ;
		}

		public Builder < E > resultAgg7 (
				BigDecimal resultAgg7
		)
		{
			this.resultAgg7 = resultAgg7 ;
			return this ;
		}

		public Builder < E > resultAgg8 (
				BigDecimal resultAgg8
		)
		{
			this.resultAgg8 = resultAgg8 ;
			return this ;
		}

		public Builder < E > resultAgg9 (
				BigDecimal resultAgg9
		)
		{
			this.resultAgg9 = resultAgg9 ;
			return this ;
		}

		public Builder < E > verisonNo (
				String verisonNo
		)
		{
			this.verisonNo = verisonNo ;
			return this ;
		}

		public Builder < E > codeInfo (
				String codeInfo
		)
		{
			this.codeInfo = codeInfo ;
			return this ;
		}

		public Builder < E > messageInfo (
				String messageInfo
		)
		{
			this.messageInfo = messageInfo ;
			return this ;
		}

		public Builder < E > pathInfo (
				String pathInfo
		)
		{
			this.pathInfo = pathInfo ;
			return this ;
		}

		public Builder < E > authorName (
				String authorName
		)
		{
			this.authorName = authorName ;
			return this ;
		}

		public Builder < E > serialNo (
				String serialNo
		)
		{
			this.serialNo = serialNo ;
			return this ;
		}

		public Builder < E > effectCount (
				String effectCount
		)
		{
			this.effectCount = effectCount ;
			return this ;
		}

		public Builder < E > issueName (
				String issueName
		)
		{
			this.issueName = issueName ;
			return this ;
		}

		public Builder < E > tokenInfo (
				String tokenInfo
		)
		{
			this.tokenInfo = tokenInfo ;
			return this ;
		}

		public Builder < E > signatureInfo (
				String signatureInfo
		)
		{
			this.signatureInfo = signatureInfo ;
			return this ;
		}

		public BaseResult < E > build ( )
		{
			return new BaseResult < E > ( this ) ;
		}
	}

}
